package strategy;

import java.util.Comparator;

/**
 * 排序类, 使用策略模式
 */
public class SortStrategyClass<T> {

    /**
     * 排序方法 冒泡排序
     * 借鉴于 https://www.cnblogs.com/ll409546297/p/10956960.html
     * @param ts 需要排序的数组
     * @param comparator 自实现的排序策略
     * @return 排序后的数组
     */
    public T[] sort(T[] ts, Comparator<T> comparator){
        for (int i = 0; i < ts.length; i++) {
            for (int j = 0; j < ts.length - 1 - i; j++) {
                if (comparator.compare(ts[j], ts[j + 1]) > 0){
                    T temp = ts[j + 1];
                    ts[j +1] = ts[j];
                    ts[j] = temp;
                }
            }
        }
        return ts;
    }
}
